package org.wu.framework.lazy.orm.database.jpa.repository;



@NoLazyRepositoryBean
public interface LazyListCrudRepository<T, ID> extends LazyCrudRepository<T, ID> {

    /**
     * 新增 多条数据
     * @param entities 数据集合
     * @return 返回数据集合
     * @param <S> 模型对象
     */
    <S extends T> Iterable<S> saveAll(Iterable<S> entities);

    /**
     * 查询所有数据
     * @return 查询数据集合
     */
    Iterable<T> findAll();


    /**
     * 根据ID批量查询数据
     * @param ids ID集合
     * @return 返回数据集合
     */
    Iterable<T> findAllByIds(Iterable<ID> ids);

    /**
     * 根据主键ID批量删除数据
     * @param ids ID集合
     */
    void deleteAllByIds(Iterable<? extends ID> ids);

    /**
     * 批量删除数据
     * @param entities 删除数据条件集合，删除时逐个处理
     */
    void deleteAll(Iterable<? extends T> entities);

    /**
     * 删除所有数据
     */
    void deleteAll();
}
